if (!STRNINCMP(filename, "file:")) filename += STRLEN("file:");
FILE *ret=fopen(filename,mode);
if(ret) return ret;
// File not found... try to open it with the file readers
// but before that, resolve ".." in path so zip can
// find it
const char *rFilename = filename;
char str[WA_MAX_PATH]="";
if (STRSTR(filename, "..")) {
PathParser pp(filename);
for (int i=0;i<pp.getNumStrings();i++) {
if (STREQL(pp.enumString(i), "..")) {
PathParser pp2(str);
if (pp2.getNumStrings() <= 0) return NULL;
ASSERTPR(pp2.getNumStrings() > 0, "we don't handle this right, and I'm not sure how to fix it because I'm not sure what the code should do with a leading .. --BU");
int l = STRLEN(pp2.enumString(pp2.getNumStrings()-1));